﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace WFExtended.Twitter
{
    /// <summary>
    /// User Settings
    /// </summary>
    [DataContract]
    public class UserSettings
    {
        /// <summary>
        /// Gets or sets a value indicating whether [always use HTTPS].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [always use HTTPS]; otherwise, <c>false</c>.
        /// </value>
        [DataMember(Name = "always_use_https")]
        public bool AlwaysUseHttps { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [discoverable by email].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [discoverable by email]; otherwise, <c>false</c>.
        /// </value>
        [DataMember(Name = "discoverable_by_email")]
        public bool DiscoverableByEmail { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [geo enabled].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [geo enabled]; otherwise, <c>false</c>.
        /// </value>
        [DataMember(Name = "geo_enabled")]
        public bool GeoEnabled { get; set; }

        /// <summary>
        /// Gets or sets the language.
        /// </summary>
        /// <value>
        /// The language.
        /// </value>
        [DataMember(Name = "language")]
        public string Language { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="UserSettings"/> is protected.
        /// </summary>
        /// <value>
        ///   <c>true</c> if protected; otherwise, <c>false</c>.
        /// </value>
        [DataMember(Name = "protect ed")]
        public bool Protected { get; set; }

        /// <summary>
        /// Gets or sets the name of the screen.
        /// </summary>
        /// <value>
        /// The name of the screen.
        /// </value>
        [DataMember(Name = "screen_name")]
        public string ScreenName { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [show all inline media].
        /// </summary>
        /// <value>
        ///   <c>true</c> if [show all inline media]; otherwise, <c>false</c>.
        /// </value>
        [DataMember(Name = "show_all_inline_media")]
        public bool ShowAllInlineMedia { get; set; }

        /// <summary>
        /// Gets or sets the time zone.
        /// </summary>
        /// <value>
        /// The time zone.
        /// </value>
        [DataMember(Name = "time_zone")]
        public WFExtended.Twitter.TimeZone TimeZone { get; set; }

        /// <summary>
        /// Gets or sets the trend location.
        /// </summary>
        /// <value>
        /// The trend location.
        /// </value>
        [DataMember(Name = "trend_location")]
        public List<TrendLocation> TrendLocation { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [use cookie personalization].
        /// </summary>
        /// <value>
        /// <c>true</c> if [use cookie personalization]; otherwise, <c>false</c>.
        /// </value>
        [DataMember(Name = "use_cookie_personalization")]
        public bool UseCookiePersonalization { get; set; }
    }
}
